Web/05 您所在的位置:网站首页 var let const作用域 Web/05

Web/05

2024-07-07 00:17| 来源: 网络整理| 查看: 265

title publish 04-ES6:变量 let、const 和块级作用域 true

ES6 的变量声明

ES5 中,使用 var 定义变量( var 是 variable 的简写)。

ES6 中,新增了 let 和 const 来定义变量:

let:定义变量,替代 var。

const:定义常量(定义后,不可修改)。

var:定义变量(ES5 知识回顾)

看下面的代码:

{ var a = 1; } console.log(a); //这里的 a,指的是 区块 里的 a

上方代码是可以输出结果的,输出结果为 1。因为 var 是全局声明的,所以,即使是在区块里声明,但仍然在全局起作用。

也就是说:使用 var 声明的变量不具备块级作用域特性。

再来看下面这段代码:

var a = 1; { var a = 2; } console.log(a); //这里的 a,指的是 区块 里的 a

上方代码的输出结果为 2 ,因为 var 是全局声明的。

总结:

ES5语法中,用 var 定义的变量,容易造成全局污染(污染整个 js 的作用域)。如果不考虑浏览器的兼容性,我们在今后的实战中,尽量避免使用 var 定义变量,尽量用接下来要讲的ES6语法。

1、let:定义变量

举例 1:

{ let a = 'hello'; } console.log(a); // 打印结果报错:Uncaught ReferenceError: a is not defined

上方代码,打印报错。

举例 2:

var a = 2; { let a = 3; } console.log(a); // 打印结果:2

通过上面两个例子可以看出,用块级作用域内, 用let 声明的变量,只在局部起作用。

经典面试题:

let 可以防止数据污染,我们来看下面这个 for 循环的经典面试题。

1、用 var 声明变量:

for (var i = 0; i Document var myBtn = document.getElementsByTagName('input'); for (var i = 0; i Document var myBtn = document.getElementsByTagName('input'); for (let i = 0; i


【本文地址】

公司简介

联系我们

今日新闻

    推荐新闻

    专题文章
      CopyRight 2018-2019 实验室设备网 版权所有